# Сводка по архитектурному компоненту
entities:
  components:
    presentations:
      # Встраиваемся в презентацию бланка
      blank:
        # Добавляем собственный виджет
        widgets:
          summary: # Идентификатор виджета
            # Иконка виджета
            icon: settings
            # Название виджета
            title: Сводка по компоненту
            # Идентификатор презентации, которая будет использоваться в виджете
            presentation: summary
            # Расположение слева
            align: "<"
            # Порядок расположения
            order: 10
            # Определяем стиль виджета
            style:
              margin: 4px
              border: true
      summary:
        title: Сводка по компоненту
        params:
          type: object
          properties:
            component:
              title: Идентификатор компонента
              type: string
          required:
            - component
        type: markdown
        template: templates/summary.md
        source: >
          (
            $COMPONENT_ID := $params.component;
            $MANIFEST := $;
            $lookup(components, $COMPONENT_ID).(
                $COMPONENT := $;
                $ENTITY := $.entity ? $.entity : "component";
                $FORM := $MANIFEST.forms[entity.$contains($ENTITY)].fields;
                $append([
                    {
                        "title": "Идентификатор",
                        "content": $COMPONENT_ID
                    },
                    {
                        "title": "Название",
                        "content": title
                    }
                ], $merge($FORM).$spread().{
                    "title": $.*.title,
                    "content": $lookup($COMPONENT, $.$keys())
                });
            )
          )
